package com.itheima.dao;

import com.itheima.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface RoleDao {
    public Set<Role> findByUserId(Integer userId);

    List<Role> findAll();

    /*根据查询条件查询角色*/
    List<Role> findByCondition(String queryString);

    Role findById(Integer id);

    void edit(Role role);

    /*设置 角色 id 和用户 id 之间的关系*/
    void setRoleIdsByUserId(@Param("userId") Integer userId, @Param("roleId") Integer roleId);

    /*根据用户 id 查询与其绑定的角色 id*/
    List<Integer> findRoleIdsByUserId(Integer userId);

    void add(Role role);

    void delete(Integer id);

    /*根据 roleId查询对应的permissionId*/
    List<Integer> findPermissionsByRoleId(Integer roleId);

    /*绑定关系*/
    void setPermissionsAndRoleId(@Param("permissionId") Integer permissionId, @Param("roleId") Integer roleId);

    /*删除表关系*/
    void deletePermissionIdsAndRoleId(Integer id);

    /*删除表关系*/
    void deleteMenuIdsAndRoleId(Integer id);

    /*绑定关系*/
    void setMenuIdAndRoleId(@Param("menuId") Integer menuId,@Param("roleId") Integer roleId);
}
